]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
screenShield: Do not save lock state on wayland
authorFlorian Müllner <fmuellner@gnome.org>
Mon, 5 Feb 2018 10:37:09 +0000 (11:37 +0100)
committerJonas Ådahl <jadahl@gmail.com>
Wed, 7 Feb 2018 04:35:57 +0000 (04:35 +0000)
We keep track of the lock state and restore it on startup to prevent
a crash from bypassing the screen lock. However on wayland, a crash
doesn't result in gnome-session restarting gnome-shell, but brings
down the entire session - that is, restoring the lock state does not
actually protect the existing session in that case, but forces the
user to authenticate twice in order to start the next session. This
is clearly not helpful, so avoid this by not saving the state when
running as wayland compositor.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/17

js/ui/screenShield.js

index 9f3ff84adeec99e57453a8c2f07924e52fc1790b..4bfde3e808e741fff7faa308ed2dda10001ce668 100644 (file)
@@ -1283,7 +1283,10 @@ var ScreenShield = new Lang.Class({
 
         this._resetLockScreen({ animateLockScreen: animate,
                                 fadeToBlack: true });
-        global.set_runtime_state(LOCKED_STATE_STR, GLib.Variant.new('b', true));
+        // On wayland, a crash brings down the entire session, so we don't
+        // need to defend against being restarted unlocked
+        if (!Meta.is_wayland_compositor())
+            global.set_runtime_state(LOCKED_STATE_STR, GLib.Variant.new('b', true));
 
         // We used to set isActive and emit active-changed here,
         // but now we do that from lockScreenShown, which means